草庐IT

Java String.split 内存泄漏?

全部标签

javascript - "creation phase"怎么知道设置多少内存空间呢?

在JavaScript:UnderstandingtheWeirdParts讲师解释说,变量的内存是在所谓的创建阶段设置的(并且undefined已分配);然后执行阶段发生。但是,当我们不知道变量稍后将指向什么值时,为什么这很有用呢?显然变量可以指向许多不同的东西——例如一个短字符串一直到一个深层嵌套的对象结构——我假设它们在所需的内存量上可能会有很大差异。如果逐行执行——包括变量赋值——只发生在后面的执行阶段,初始创建阶段怎么知道如何设置内存?或者,是否只为每个变量名称/值对中的名称预留内存,而对值的内存以不同方式管理? 最佳答案

javascript - 在仅 nodejs 环境中的 ES6 模块/类中定义 'real' 私有(private)方法,没有任何信息泄漏

我知道没有REAL私有(private)方法INSIDEES6类。然而,我玩了一会儿,发现了一些好东西——也许……正如我提到的,不公开对象的属性是不可能的。但是我试图实现一些OOP编程,因为我将我的类分成单独的文件,然后导出这些类,如:classMyClass{constructor(){/***Initializestuff...*/}myMethod(){/***Dopublicstuff...*/}}//exposeclasstoenvironment.exportdefaultMyClass;所以我可以导入类:从'./MyClass.js'导入MyClass;当然myMetho

嵌套箭头函数的Javascript内存含义

考虑:functionf1(){functionn11(){..lotsofcode..};constn12=()=>{..lotsofcode..};returnn11()+n12()+5;}constf2=()=>{functionn21(){..lotsofcode..};constn22=()=>{..lotsofcode..};returnn21()+n22()+5;}我正在尝试了解调用f1和f2的内存含义。关于n11,thisanswer说:Forsomeverysmallandnormallyinconsequentialvalueof"wasted".JavaScrip

Javascript 内存泄漏 : why would assigning object to null work?

关于用于防止内存泄漏的空赋值修复的性质,有人可以为我挠痒痒吗?我们都熟悉以下技术来阻止DOM对象和JS对象之间的循环引用,以防止内存泄漏:functionfoo(){varele=document.getElementById("someParagraphId");ele.onclick=function(){//someactionhere};ele=null;}问题是为什么上面的方法会起作用?将“ele”设置为null肯定会停止循环引用,但它不会也阻止将来对“ele”的引用吗?functionfoo(){varele=document.getElementById("somePar

javascript - jQuery 内存泄漏怀疑

我正在为XML发出AJAX请求。我每秒都在这样做。我注意到我的内存使用量增长到数百兆字节。正如您所想象的,客户对此并不满意。在各个地方阅读之后,我怀疑函数闭包让我头疼。我正在寻找可以进行的任何验证以及有关如何修复它的任何帮助。functionPageManager(){varself=this;self.timeoutHandler=function(){$.ajax({url:'URLtoXML',type:'post',cache:false,context:self,success:function(data){varslf=this;varxmlDoc=$($.parseXML

javascript - 为什么初始化多个变量会导致范围泄漏?

我指的是JavaScriptvarhoisting的文档,在一个部分我找到了Initializationofseveralvariables用Example如下所示。varx=0;functionf(){varx=y=1;}f();console.log(x,y);//outputs0,1//xistheglobaloneasexpected//yleakedoutsideofthefunction,though!我想得到的异常是UncaughtReferenceError:yisnotdefined。但由于范围泄漏并没有发生,它正在显示0,1。我能详细知道为什么会这样吗?最后有任何与

javascript - 在数组上使用 delete 和随后的 .push() 会影响性能/内存消耗吗?

问题在数组元素上使用delete将其从数组中删除是我知道的从数组中删除元素的唯一方法,例如.forEach()调用跳过索引。问题是否在索引上使用delete,例如exampleArray[i],导致后续的exampleArray.push()增加内存数组对象的消耗?删除对象如何影响垃圾收集器?是否有更有效的方法来去除exampleArray元素?前者的例子varexampleArray=[];varn=500;//Doesthislineimplyamemoryallocation?exampleArray.length=n;exampleArray.fill("LoremIpsum"

javascript内存泄漏

我有一些javascript(与googlemapsapi一起使用),我正在IE和Chrome上进行测试,并且仅在IE中注意到内存泄漏症状:当我连续刷新页面时,IE中使用的内存量不断增长(快速),但在Chrome中它保持不变。在不发布所有代码的情况下(因为它相当长),我可以得到一些关于要注意什么的建议吗?什么会导致内存在IE中在页面刷新时像这样不断增长?就像我说的那样,我知道没有代码会很困难,但我想看看是否有任何通用建议首先起作用。谢谢。更新:感谢到目前为止的回复。作为完整性检查,我运行了googlemapsapi“HelloWorld”代码fromgoogle看看在IE中会发生什么(

javascript - IE9内存泄漏

我注意到,在我的应用程序中,与Win7上的IE进程关联的内存随着每次页面刷新而增加20-30MB。一旦我达到大约1.5GB,浏览器就会变得无响应。我正在使用IE9,并且只能在IE9中重现。在Chrome、FF、IE7或IE8中没有此类问题。其实在兼容模式下运行IE9也不会出现这个问题。特别是,我想知道即使在页面刷新后内存也会泄漏。还有其他人看到这个吗? 最佳答案 我不确定这是否是您的问题,但我也遇到了这个IE9内存泄漏问题,内存不断增长(每次刷新/页面更改大约20毫克)。如果您使用的是Modernizr(这应该在最近的一个版本中得到

javascript - 有人知道为什么 "x".split(/(x)/).length 在 IE 中返回 0 吗?

在IE中,"x".split(/(x)/).length返回0在Firefox、Chrome、Safari和Opera中,它返回3。有人知道原因吗?如果可能,将不胜感激引用链接。我认为这是一个IE正则表达式实现问题,但我找不到任何相关文档。 最佳答案 您是正确的,存在实现问题。IE会忽略空值并捕获正则表达式中的block。所以对于"foo".split(/o/)IE给[f]其他浏览器给的地方["f","",""]当您添加捕获时:"foo".split(/(o)/)IE执行相同,但其他人将捕获的分隔符添加到结果数组中以给出["f","